﻿using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;

namespace Admin.NET.Application;

    /// <summary>
    /// 班级基础输入参数
    /// </summary>
    public class BanjiBaseInput
    {
        /// <summary>
        /// 编号
        /// </summary>
        public virtual string BianHao { get; set; }
        
        /// <summary>
        /// 班级名称
        /// </summary>
        public virtual string? Name { get; set; }
        
        /// <summary>
        /// 班主任
        /// </summary>
        public virtual long? BzrId { get; set; }
        
        /// <summary>
        /// 学段
        /// </summary>
        public virtual int Xueduan { get; set; }
        
        /// <summary>
        /// 级
        /// </summary>
        public virtual int Ji { get; set; }
        
        /// <summary>
        /// 班号
        /// </summary>
        public virtual int Bh { get; set; }
        
        /// <summary>
        /// 备注
        /// </summary>
        public virtual string? Beizhu { get; set; }
        
        /// <summary>
        /// 是否毕业
        /// </summary>
        public virtual bool IsGraduated { get; set; }
        
        /// <summary>
        /// 创建者姓名
        /// </summary>
        public virtual string? CreateUserName { get; set; }
        
        /// <summary>
        /// 修改者姓名
        /// </summary>
        public virtual string? UpdateUserName { get; set; }
        
    }

    /// <summary>
    /// 班级分页查询输入参数
    /// </summary>
    public class BanjiInput : BasePageInput
    {
        /// <summary>
        /// 关键字查询
        /// </summary>
        public string? SearchKey { get; set; }

        /// <summary>
        /// 编号
        /// </summary>
        public string? BianHao { get; set; }
        
        /// <summary>
        /// 班级名称
        /// </summary>
        public string? Name { get; set; }
        
        /// <summary>
        /// 班主任
        /// </summary>
        public long? BzrId { get; set; }
        
        /// <summary>
        /// 学段
        /// </summary>
        public int? Xueduan { get; set; }
        
        /// <summary>
        /// 级
        /// </summary>
        public int? Ji { get; set; }
        
        /// <summary>
        /// 班号
        /// </summary>
        public int? Bh { get; set; }
        
        /// <summary>
        /// 备注
        /// </summary>
        public string? Beizhu { get; set; }
        
        /// <summary>
        /// 是否毕业
        /// </summary>
        public bool? IsGraduated { get; set; }
        
    }

    /// <summary>
    /// 班级增加输入参数
    /// </summary>
    public class AddBanjiInput : BanjiBaseInput
    {
        /// <summary>
        /// 编号
        /// </summary>
        [Required(ErrorMessage = "编号不能为空")]
        public override string BianHao { get; set; }
        
        /// <summary>
        /// 学段
        /// </summary>
        [Required(ErrorMessage = "学段不能为空")]
        public override int Xueduan { get; set; }
        
        /// <summary>
        /// 级
        /// </summary>
        [Required(ErrorMessage = "级不能为空")]
        public override int Ji { get; set; }
        
        /// <summary>
        /// 班号
        /// </summary>
        [Required(ErrorMessage = "班号不能为空")]
        public override int Bh { get; set; }
        
        /// <summary>
        /// 是否毕业
        /// </summary>
        [Required(ErrorMessage = "是否毕业不能为空")]
        public override bool IsGraduated { get; set; }
        
    }

    /// <summary>
    /// 班级删除输入参数
    /// </summary>
    public class DeleteBanjiInput : BaseIdInput
    {
    }

    /// <summary>
    /// 班级更新输入参数
    /// </summary>
    public class UpdateBanjiInput : BanjiBaseInput
    {
        /// <summary>
        /// 主键Id
        /// </summary>
        [Required(ErrorMessage = "主键Id不能为空")]
        public long Id { get; set; }
        
    }

    /// <summary>
    /// 班级主键查询输入参数
    /// </summary>
    public class QueryByIdBanjiInput : DeleteBanjiInput
    {

    }
